home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Programming / yaec / modules / iffparse.e < prev    next >
Encoding:
Text File  |  2001-08-12  |  5.5 KB  |  77 lines

  1. OPT MODULE
  2. OPT EXPORT
  3. -> Module created with E:bin/fd2module from YAECv18 package.
  4. OPT NDDC
  5. -> --- functions in V36 or higher (Release 2.0) ---
  6. -> 
  7. ->  Basic functions
  8. -> 
  9. #macro AllocIFF() IS (A6:=iffparsebase) BUT ASM ' jsr -30(a6)'
  10. #macro OpenIFF(iff,rwMode) IS Stores(iffparsebase,iff,rwMode) BUT Loads(A6,A0,D0) BUT ASM ' jsr -36(a6)'
  11. #macro ParseIFF(iff,control) IS Stores(iffparsebase,iff,control) BUT Loads(A6,A0,D0) BUT ASM ' jsr -42(a6)'
  12. #macro CloseIFF(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -48(a6)'
  13. #macro FreeIFF(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -54(a6)'
  14. -> 
  15. ->  Read/Write functions
  16. -> 
  17. #macro ReadChunkBytes(iff,buf,numBytes) IS Stores(iffparsebase,iff,buf,numBytes) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -60(a6)'
  18. #macro WriteChunkBytes(iff,buf,numBytes) IS Stores(iffparsebase,iff,buf,numBytes) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -66(a6)'
  19. #macro ReadChunkRecords(iff,buf,bytesPerRecord,numRecords) IS Stores(iffparsebase,iff,buf,bytesPerRecord,numRecords) BUT Loads(A6,A0,A1,D0,D1) BUT ASM ' jsr -72(a6)'
  20. #macro WriteChunkRecords(iff,buf,bytesPerRecord,numRecords) IS Stores(iffparsebase,iff,buf,bytesPerRecord,numRecords) BUT Loads(A6,A0,A1,D0,D1) BUT ASM ' jsr -78(a6)'
  21. -> 
  22. ->  Context entry/exit
  23. -> 
  24. #macro PushChunk(iff,type,id,size) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(iffparsebase,iff,type,id,size) BUT Loads(A6,A0,D0,D1,D2) BUT ASM ' jsr -84(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  25. #macro PopChunk(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -90(a6)'
  26. -> --- (1 function slot reserved here) ---
  27. -> 
  28. ->  Low-level handler installation
  29. -> 
  30. #macro EntryHandler(iff,type,id,position,handler,object) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(iffparsebase,iff,type,id,position,handler,object) BUT Loads(A6,A0,D0,D1,D2,A1,A2) BUT ASM ' jsr -102(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  31. #macro ExitHandler(iff,type,id,position,handler,object) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(iffparsebase,iff,type,id,position,handler,object) BUT Loads(A6,A0,D0,D1,D2,A1,A2) BUT ASM ' jsr -108(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  32. -> 
  33. ->  Built-in chunk/property handlers
  34. -> 
  35. #macro PropChunk(iff,type,id) IS Stores(iffparsebase,iff,type,id) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -114(a6)'
  36. #macro PropChunks(iff,propArray,numPairs) IS Stores(iffparsebase,iff,propArray,numPairs) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -120(a6)'
  37. #macro StopChunk(iff,type,id) IS Stores(iffparsebase,iff,type,id) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -126(a6)'
  38. #macro StopChunks(iff,propArray,numPairs) IS Stores(iffparsebase,iff,propArray,numPairs) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -132(a6)'
  39. #macro CollectionChunk(iff,type,id) IS Stores(iffparsebase,iff,type,id) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -138(a6)'
  40. #macro CollectionChunks(iff,propArray,numPairs) IS Stores(iffparsebase,iff,propArray,numPairs) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -144(a6)'
  41. #macro StopOnExit(iff,type,id) IS Stores(iffparsebase,iff,type,id) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -150(a6)'
  42. -> 
  43. ->  Context utilities
  44. -> 
  45. #macro FindProp(iff,type,id) IS Stores(iffparsebase,iff,type,id) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -156(a6)'
  46. #macro FindCollection(iff,type,id) IS Stores(iffparsebase,iff,type,id) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -162(a6)'
  47. #macro FindPropContext(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -168(a6)'
  48. #macro CurrentChunk(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -174(a6)'
  49. #macro ParentChunk(contextNode) IS (A0:=contextNode) BUT (A6:=iffparsebase) BUT ASM ' jsr -180(a6)'
  50. -> 
  51. ->  LocalContextItem support functions
  52. -> 
  53. #macro AllocLocalItem(type,id,ident,dataSize) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(iffparsebase,type,id,ident,dataSize) BUT Loads(A6,D0,D1,D2,D3) BUT ASM ' jsr -186(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  54. #macro LocalItemData(localItem) IS (A0:=localItem) BUT (A6:=iffparsebase) BUT ASM ' jsr -192(a6)'
  55. #macro SetLocalItemPurge(localItem,purgeHook) IS Stores(iffparsebase,localItem,purgeHook) BUT Loads(A6,A0,A1) BUT ASM ' jsr -198(a6)'
  56. #macro FreeLocalItem(localItem) IS (A0:=localItem) BUT (A6:=iffparsebase) BUT ASM ' jsr -204(a6)'
  57. #macro FindLocalItem(iff,type,id,ident) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(iffparsebase,iff,type,id,ident) BUT Loads(A6,A0,D0,D1,D2) BUT ASM ' jsr -210(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  58. #macro StoreLocalItem(iff,localItem,position) IS Stores(iffparsebase,iff,localItem,position) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -216(a6)'
  59. #macro StoreItemInContext(iff,localItem,contextNode) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(iffparsebase,iff,localItem,contextNode) BUT Loads(A6,A0,A1,A2) BUT ASM ' jsr -222(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  60. -> 
  61. ->  IFFHandle initialization
  62. -> 
  63. #macro InitIFF(iff,flags,streamHook) IS Stores(iffparsebase,iff,flags,streamHook) BUT Loads(A6,A0,D0,A1) BUT ASM ' jsr -228(a6)'
  64. #macro InitIFFasDOS(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -234(a6)'
  65. #macro InitIFFasClip(iff) IS (A0:=iff) BUT (A6:=iffparsebase) BUT ASM ' jsr -240(a6)'
  66. -> 
  67. ->  Internal clipboard support
  68. -> 
  69. #macro OpenClipboard(unitNumber) IS (D0:=unitNumber) BUT (A6:=iffparsebase) BUT ASM ' jsr -246(a6)'
  70. #macro CloseClipboard(clipHandle) IS (A0:=clipHandle) BUT (A6:=iffparsebase) BUT ASM ' jsr -252(a6)'
  71. -> 
  72. ->  Miscellaneous
  73. -> 
  74. #macro GoodID(id) IS (D0:=id) BUT (A6:=iffparsebase) BUT ASM ' jsr -258(a6)'
  75. #macro GoodType(type) IS (D0:=type) BUT (A6:=iffparsebase) BUT ASM ' jsr -264(a6)'
  76. #macro IDtoStr(id,buf) IS Stores(iffparsebase,id,buf) BUT Loads(A6,D0,A0) BUT ASM ' jsr -270(a6)'
  77.